A. Technical Field
This invention relates generally to discovery of peer devices on a network, and more particularly, to dynamic discovery of peer applications running in the network.
B. Background of the Invention
A network allows multiple devices to communicate with each other via network connections. Typically, the ability for such devices to communicate with its peer devices (“peers”) requires a minimum knowledge and identification of the peers' characteristics. A peer may be any network device such as sensors, phones, personal digital assistants (“PDAs”), personal computers (“PCs”), servers, supercomputers, etc.
The discovery of peers is considered a preliminary step in establishing communication between the peer devices. However, because peers and their characteristics may change over time, communication on the network often requires that these changes be monitored and maintained. This monitoring may be performed using various methods including direct point-to-point monitoring or having a central location that monitors network elements and peers.
There are various existing solutions for the discovery of peers in a network. In one such solution, as shown in FIG. (“FIG.”) 1, directories are dedicated to store the information about the peers such as their name, address, resources and metadata. Network elements may access the directories to locate other networked peers and retrieve particular information thereabout. For example in a directory service model, for Peer A 101 to know the peers existent in the network, it has to contact directory server 100. After receiving information on the peers existent in the network, peer A 101 may request information on a particular peer, for example Peer C 103.The directory server replies to Peer A 101 with the information related to Peer C 103. Thereafter, further communication between Peer A 101 and Peer C 103 may occur.
The information on the existing peers in the network is continuously updated in the directory maintained within directory server 100. In order to allow network elements/peers to access this directory server 100, each peer has to be configured with the location of the directory server 100. This configuration procedure is tedious and error prone. Moreover, the solution suffers inherently from “single point of failure,” a condition arising because of the complete reliability on the centralized directory for information about the network. Accordingly, if the directory server 100 fails, then the discovery procedure fails.
The problem of single point of failure arising due to centralized information storage on directory is overcome in a network model as shown in FIG. 2. In a network model, every peer in the network assists in discovery. Specifically, a single peer does not know the structure of the entire network or the identity of every peer participating in the network. Instead, peers know only of the peers with which they are in direct communication. In order to know the peers existent in the network peers have to pass on a request to its neighboring peers. If those peers are unable to satisfy the request, the same request is passed on to their neighboring peers and so on until the request is satisfied. For example, if Peer B 202 needs information on existence of Peer G 207. A request from Peer B 202 is sent to Peer C 203, a peer device with which Peer B 202 may already communicate. In this scenario, there is no direct link between Peer C 203 and Peer G 207 so Peer C 203 is unaware of information on Peer G 207. Accordingly, the request is further passed to Peer F 206, which contains information on Peer G 207, which is then finally passed to Peer B 202. As a result, a communication channel between Peer B 202 and Peer G 207 may be properly configured. Although this model overcomes the single point of failure model, it does require active assistance of other peers of the network for discovery service and may further burden the network elements and connections.
A multicast model overcomes the need of active participation of peers for discovery service. A multicast datagram can be sent to multiple devices. The sender of a multicast datagram does not need complete information about the network elements/peers that are to receive the datagram. In particular, a single packet is sent from a source and is replicated as needed in the network to reach as many network elements as necessary. In this way, multicasting yields performance improvements and conserves bandwidth end-to-end. Discovery using multicast technology works by having peers periodically announce their existence using multicast.
The multicast approach is inherently unreliable (because it depends on UDP, which is essentially an unreliable protocol) because a multicast announcement may not reach a particular network element or may not be received by a network element prior to a communication attempt with the announcing peer and its dependence on unreliable protocols such as UDP. This problem leads to incomplete information about certain peers/element on the network and applications running on a peer may produce faulty output because of this incomplete information.
Various systems and networking protocols also fail to define an effective peer discovery mechanism. For example, the point-to-point communication using Transmission Control Protocol (“TCP”) does not support multicasting and thus in spite of being reliable is not effectively used for discovery process in a network in combination with multicasting. Also, the Distributed Component Object Model (“DCOM”) and common object request broker architecture (“CORBA”) provides a means for application over a network to communicate. However, special protocols are required in each of the architectures and such communication may become difficult to initialize and maintain.
There is therefore a need for a simple yet a reliable method for dynamic discovery of peers applications existent in the network and information about these peer applications, which may be implemented with various operating systems and networks.